== Description of C128 BASIC Code for VC3 2021 Christmas tree program ==

The widths of the Christmas tree are 1,3,5,7,3,7,11,15,5,11,17,23,3,3. While a nested loop can calculate the first 12 numbers, I found it shorter to store the numbers in a DATA statement. Since all numbers are uneven, storing halved numbers is sufficient to reconstruct the original width. This makes it also easier to calculate the necessary indentation. We can save further on length by decreasing all numbers until we have a maximum of zeroes since a 0 can be encoded by just a comma in a data statement. The reduction is accounted by the argument in the command SPC(20-w) which becomes SPC(18-w) for numbers reduced previously by 2. In addition, the loop for printing the stars has to be adjusted to start with -2. The program is a oneliner that can be entered on the native system. The program loops with a GOTO0 command at the end. The program ends with an OUT OF DATA ERROR when it runs out of data. 

Abbreviated line (for minimal number of characters when entering):

0dA-1,,1,2,,2,4,6,1,4,7,10,,:reAw:?spC18-w);:fOk=-2tow+w:?"*";:nE:?:gO0

Expanded code:

0 data-1,,1,2,,2,4,6,1,4,7,10,,:readw:printspc(18-w);:fork=-2tow+w:print"*";:next:print:goto0

To have the tree exactly centered in 80 column mode, the number 18 (after "spc(") should be changed to 38.